
package keul.planner.beans;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.inject.Inject;
import keul.planner.entities.Line;
import keul.planner.entities.Station;

/**
 * Die Bean für die viewStation.xhtml seite und einen Teil
 * der Startseite (home.xhtml). Sollte der Setter von der 
 * xhtml-Seite aus bedient werden, wird gleich die Station-Variable
 * mit dem richtigen Objekt besetzt.
 * @author kev
 */
@ManagedBean
@SessionScoped
public class StationViewManager implements Serializable{

    @Inject
    private DataManager dataManager;
    
    private String stationString;
    private Station selectedStation;
    
    public String getStationString() {
        return stationString;
    }
    /**
     * Diese Setter sucht nach dem Setzen des Strings gleich
     * das Objekt aus der Datenbank und legt die Referenz auf
     * selectedStation
     * @param stationString 
     */
    public void setStationString(String stationString) {
        this.stationString = stationString;
        selectedStation = dataManager.getStationByName(stationString);
    }
    public Station getSelectedStation() {
        return selectedStation;
    }
    public void setSelectedStation(Station selectedStation) {
        this.selectedStation = selectedStation;
    }   
    
    public String isStationServedBy(Station currentStation, Line line)  {
        for (Station station : line.getStops()) {
            if (station.equals(currentStation))
                return station.toString();
        }
        return null;
    }
    
    public String returnLinkToStationView(String stationString) {
        setStationString(stationString);
        return "viewStation";
    }
    
    
    
}
